package controlador;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Iterator;

import vista.VistaJuego;

import modelo.interfaces.Manejador;
import modelo.juego.Juego;
import modelo.mapa.Posicion;
import modelo.torres.CreadorTorre;
import modelo.torres.CreadorTorreDorada;
import modelo.torres.ManejadorTorres;

public class ControladorTorreDorada implements MouseListener, MouseMotionListener {
	private ManejadorTorres mt; 
	
	public ControladorTorreDorada() {
		Iterator<Manejador> it = Juego.ObtenerJuego().getManejables().iterator();
		 
		while (it.hasNext()){
			Manejador manejador = it.next();
			if (manejador instanceof ManejadorTorres) {
				mt = (ManejadorTorres)manejador;
			}
		}
	}
	
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	
	public void mouseReleased(MouseEvent e) {
		try{
		Posicion pos = ((JLabelConPosicion) VistaJuego.ObtenerVistaJuego().getGrilla().getComponentAt((VistaJuego.ObtenerVistaJuego().getGrilla().getMousePosition(true)))).GetPosicion();
		CreadorTorre creadorT = new CreadorTorreDorada();
		mt.crearTorre(Juego.ObtenerJuego().getMapa().GetCasilleroXY(pos.getX(),pos.getY()), creadorT);
		}
		catch(RuntimeException re){}		
	}

	
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
	
	}

	
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
}
